#!/bin/bash 
# 首先定义一个NDK目录的变量 NDK_ROOT 
NDK_ROOT=//root/android-ndk-r17c 
 
# 此变量执行ndk中的交叉编译gcc所在目录 
TOOLCHAIN=$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64 
 
#从as的 externalNativeBuild/xxx/build.ninja， 反正下面的配置，可以压制警告的意思 
FLAGS="-isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi - D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack- protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp - mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -O0 - fPIC" 
 
INCLUDES=" -isystem $NDK_ROOT/sources/android/support/include"
 
# 1.定义编译后，所存放的目录 
PREFIX=./android/arm 
# 2.--enable-small 优化大小 非常重要，必须优化才行的哦 
# 3.--disable-programs 不编译ffmpeg程序（命令行工具），我们是需要获取静态、动态库 
# 4.--disable-avdevice 关闭avdevice模块，此模块在android中无用 
# 5.--disable-encoders 关闭所有编码器（播放不需要编码） 
# 6.--disable-muxers 关闭所有复用器（封装器），不需要生成mp4这样的文件，所有关闭 
# 7.--disable-filters 关闭所有滤镜 
# 8.--enable-cross-compile 开启交叉编译 
# 9.--cross-prefix 看右边的值就知道是干嘛的，gcc的前缀.. 
# 10.disable-shared / enable-static （代表关闭动态库，开启 静态库） 
 
# 11.--sysroot 
# 12.--extra-cflags 会传给gcc的参数 
# 13.--arch --target-os 
 
./configure \ 
--prefix=$PREFIX \ 
--enable-small \
 --disable-programs \ 
--disable-avdevice \ 
--disable-encoders \ 
--disable-muxers \ 
--disable-filters \ 
--enable-cross-compile \ 
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ 
--disable-shared \ 
--enable-static \ 
--sysroot=$NDK_ROOT/platforms/android-21/arch-arm \ 
--extra-cflags="$FLAGS $INCLUDES" \ 
--extra-cflags="-isysroot $NDK_ROOT/sysroot/" \ 
--arch=arm \ 
--target-os=android 
make clean 
make install#!/bin/bash
NDK=$HOME/ndk/android-ndk-r9d
SYSROOT=$NDK/platforms/android-9/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86

function build_one
{
./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --disable-static \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --disable-avdevice \
    --disable-doc \
    --disable-symver \
    --enable-decoders \
    --enable-muxers \
    --enable-protocols \
    --enable-filters \
    --enable-network \
    --enable-gpl \
    --enable-avresample \
    --enable-swresample \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=linux \
    --arch=arm \
    --enable-cross-compile \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
    --extra-ldflags="$ADDI_LDFLAGS" \
    $ADDITIONAL_CONFIGURE_FLAG

make clean
make
make install
}

CPU=arm
PREFIX=$(pwd)/android/$CPU 
ADDI_CFLAGS="-marm"
build_one
